iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 24
0
自我挑戰組

Git學習筆記系列 第 25

合併多個commit為1個 use squash

  • 分享至 

  • xImage
  •  

之前也介紹過合併多個commit為1個

不過之前的介紹方式是透過reset到特定的commit 用 mixed 模式

之後再把因為reset而變成還沒加入暫存區的程式add進暫存區

再commit之後就可以將特定commit之後的版本變為同一個commit

上面這個情境是比較適合同一個branch底下的

今天要介紹的是不同branch merge時可以使用的指令

  • 從remote clone一個master

  • 在該master下,建立一個檔案後commit

  • 再從這個commit建立並且切換到新的分支 iss1

​$ git checkout -b iss1
Switched to a new branch 'iss1'
  • 在此iss1分支上建立幾個commit

現在的線圖看起來如下

Imgur

  • 接下來切回master分支

如果我們希望從分支iss1合併回分支master的時候只有一個commit

可以下squash來合併

​$ git merge --squash iss1
Updating 3934b8e..7746e08
Fast-forward
Squash commit -- not updating HEAD
 test.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

這時候就可以將合併回來的檔案commit出去

commit後的線圖如下

Imgur

藍色的是分支master

粉紅色是分支iss1

可以看到分支master上只有2個commit

我們把iss1的3個commit在合併到master的過程,轉為master上的1個commit

而且不是跟一般合併一樣,會產生一個合併的分支圖


上一篇
互動式協助找出有問題的commit:git-bisect
下一篇
git 物件基礎認識
系列文
Git學習筆記31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言